#ifdef OSGI_USE_15S_HEADER
#include "../interface/InterfaceDef.h"
#include "osgi-core/osgi-predefined.h"
#else // OSGI_USE_15S_HEADER
#ifndef ISYSTEMINITIALIZER_H__
#define ISYSTEMINITIALIZER_H__

#include "osgi-predefined.h"

#define OSGI_SYSTEM_INITIALIZER_SYMBOL K5_GetSystemInitializer
#define OSGI_SYSTEM_INITIALIZER_STRING #OSGI_SYSTEM_INITIALIZER_SYMBOL

OSGI_NAMESPACE_BEGIN

typedef void* (*K5_System_Mgr_func)(void);

OSGI_INTERFACE ISystemInitializer
{
	virtual ~ISystemInitializer() {}

	virtual int OSGI_API Initialize(const char *bundlePath, const char *appPath) = 0;
	virtual int OSGI_API Finalize() = 0;
};

OSGI_NAMESPACE_END

#define OSGI_SYSTEM_INITIALIZER() \
extern "C" OSGI_EXPORT_SYMBOL void *OSGI_SYSTEM_INITIALIZER_SYMBOL();

OSGI_SYSTEM_INITIALIZER()

#endif // ISYSTEMINITIALIZER_H__
#endif // OSGI_USE_15S_HEADER